#pragma once

#include "ICoreGraphic.h"

#include "IFont.h"
#include "IPieceGroup.h"
#include "IAnimationGroup.h"
#include "IModel.h"

#include "ICamera.h"
#include "ILightSystem.h"
#include "ITexture.h"
#include "IRenderStyle.h"

#include "ArkModule.h"
// #include "CDomXml.h"

#include "TDNode.h"

class IGraphicModule :/* public IBase,*/public tNode
{
public:
// 	interface_version(IGraphicModule,000);

	virtual ICoreGraphic* CreateGraphic( HANDLE hDev, void* PresentParam ) = 0;
	virtual ICoreGraphic* CreateGraphic( HWND hWnd, BOOL bFullScreen = FALSE, ARK_DISPLAY_FORMAT Format = ARK_DIS_R5G6B5 ) = 0;

	virtual void ResetGraphicRenderStyle( ICoreGraphic* pGraphic ) = 0;
	virtual void CalculateUsedSkeleteOnly( bool bOnlyUsed ) = 0;

	WX_DECLARE_DYNAMIC(IGraphicModule);
};
